package com.businesscard.system.mapper;

import com.businesscard.system.entity.UserGroup;
import com.businesscard.system.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserGroupMapper {
    
    // 插入用户组
    int insertGroup(UserGroup group);
    
    // 更新用户组
    int updateGroup(UserGroup group);
    
    // 查询所有用户组
    List<UserGroup> selectAllGroups();
    
    // 根据ID查询用户组
    UserGroup selectGroupById(@Param("id") Integer id);
    
    // 根据名称查询用户组
    UserGroup selectGroupByName(@Param("groupName") String groupName);
    
    // 删除用户组
    int deleteGroup(@Param("id") Integer id);
    
    // 添加用户到用户组
    int addUserToGroup(@Param("groupId") Integer groupId, @Param("userId") Integer userId);
    
    // 从用户组移除用户
    int removeUserFromGroup(@Param("groupId") Integer groupId, @Param("userId") Integer userId);
    
    // 查询用户所属的用户组
    List<UserGroup> selectGroupsByUserId(@Param("userId") Integer userId);
    
    // 查询用户组中的所有用户
    List<User> selectUsersByGroupId(@Param("groupId") Integer groupId);
    
    // 检查用户是否在用户组中
    Boolean checkUserInGroup(@Param("groupId") Integer groupId, @Param("userId") Integer userId);
} 